package com.stxx.assistant.framwork.sql;

import com.stxx.assistant.framwork.support.Getter;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.function.Consumer;

/**
 * @author Fuzhenlei
 * @date 2025/01/20 16:34
 */
public class Q<T>{
    private Class<T> clazz;
    private List<Object> params = new ArrayList<>();
    private StringBuilder sb = new StringBuilder();
    public static <T> Q<T> of(Class<T> clazz){
        return new Q<>(clazz);
    }
    public Q(Class<T> clazz){
        this.clazz = clazz;
    }
    
    public Q<T> eq(Getter<T> getter, Object val) {
        return this;
    }
    
    public Q<T> ne(Getter<T> getter, Object val) {
        return this;
    }
    
    public Q<T> gt(Getter<T> getter, Object val) {
        return this;
    }
    
    public Q<T> ge(Getter<T> getter, Object val) {
        return this;
    }
    
    public Q<T> lt(Getter<T> getter, Object val) {
        return this;
    }
    
    public Q<T> le(Getter<T> getter, Object val) {
        return this;
    }
    
    public Q<T> like(Getter<T> getter, Object val) {
        return this;
    }

    
    public Q<T> and(Consumer<Q<T>> consumer) {
        return this;
    }
    
    public Q<T> or(Consumer<Q<T>> consumer) {
        return this;
    }

    public Q<T> not(Consumer<Q<T>> consumer) {
        return this;
    }
    



    public Q<T> isNull(Getter<T> getter) {
        return this;
    }


    public Q<T> isNotNull(Getter<T> getter) {
        return this;
    }


    public Q<T> in(Getter<T> getter, Collection<?> coll) {
        return this;
    }


    public Q<T> in(Getter<T> getter, Object... values) {
        return this;
    }
}
